package uk.org.aspellclark.gedcom.model.records;

import java.util.ArrayList;
import java.util.List;

import uk.org.aspellclark.gedcom.model.structures.AddressStructure;

/**<pre>HEADER:=
    n HEAD                                              {1:1}
      +1 SOUR &lt;APPROVED_SYSTEM_ID>                      {1:1}
          +2 VERS &lt;VERSION_NUMBER>                      {0:1}
          +2 NAME &lt;NAME_OF_PRODUCT>                     {0:1}
          +2 CORP &lt;NAME_OF_BUSINESS>                    {0:1}
              +3 &lt;&lt;ADDRESS_STRUCTURE>>                  {0:1}
          +2 DATA &lt;NAME_OF_SOURCE_DATA>                 {0:1}
              +3 DATE &lt;PUBLICATION_DATE>                {0:1)
              +3 COPR &lt;COPYRIGHT_SOURCE_DATA>           {0:1)
                  +4 [CONT|CONC]&lt;COPYRIGHT_SOURCE_DATA> {0:M}
      +1 DEST &lt;RECEIVING_SYSTEM_NAME>                   {0:1*
      +1 DATE &lt;TRANSMISSION_DATE>                       {0:1}
          +2 TIME &lt;TIME_VALUE>                          {0:1}
      +1 SUBM @&lt;XREF:SUBM>@                             {1:1}
      +1 SUBN @&lt;XREF:SUBN>@                             {0:1}
      +1 FILE &lt;FILE_NAME>                               {0:1}
      +1 COPR &lt;COPYRIGHT_GEDCOM_FILE>                   {0:1}
      +1 GEDC                                           {1:1}
          +2 VERS &lt;VERSION_NUMBER>                      {1:1}
          +2 FORM &lt;GEDCOM_FORM>                         {1:1}
      +1 CHAR &lt;CHARACTER_SET>                           {1:1}
          +2 VERS &lt;VERSION_NUMBER>                      {0:1}
      +1 LANG &lt;LANGUAGE_OF_TEXT>                        {0:1}
      +1 PLAC                                           {0:1}
          +2 FORM &lt;PLACE_HIERARCHY>                     {1:1}
      +1 NOTE &lt;GEDCOM_CONTENT_DESCRIPTION>              {0:1}
          +2 [CONC|CONT] &lt;GEDCOM_CONTENT_DESCRIPTION>   {0:M}
</pre><p>
* NOTE:
Submissions to the Family History Department for Ancestral File submission or for clearing temple ordinances must use a
DESTination of ANSTFILE or TempleReady, respectively.</p><p>
The header structure provides information about the entire transmission. The SOURce system name
identifies which system sent the data. The DESTination system name identifies the intended receiving
system.</p>
Additional GEDCOM standards will be produced in the future to reflect GEDCOM expansion and
maturity. This requires the reading program to make sure it can read the GEDC.VERS and the
GEDC.FORM values to insure proper readability. The CHAR tag is required. All character codes
greater than 0x7F must be converted to ANSEL. (See Chapter 3, starting on page 77.)</p>
 */
public class Header {

	public class Source {
		public String id;
		public String version;
		public String name;
		public String corpName;
		public AddressStructure corpAddress = new AddressStructure();
		public String data;
		public String dataDate;
		public String dataCopyright;
	}

	public Source sour = new Source();
	public String dest;
	public String date;
	public String time;
	public List<String> submXRef = new ArrayList<String>();
	public List<String> subnXRef = new ArrayList<String>();
	public String fileName;
	public String copyright;
	public String gedcVersion;
	public String gedcForm;
	public String charset;
	public String charsetVers;
	public String place;
	public String language;
	public String placeHierarchy;
	public String note;
}
